import request from "@/utils/request";


/**
 * 获取表格数据的函数
 * @param {Object} data - 请求携带的数据对象
 * @return {Promise} 返回一个Promise对象，用于处理请求的结果
 */
export function getTableData(params) {
    // 发起GET请求获取列表数据
    return request({
        url: '/list',
        method: "GET",
        params,
    });
}



/**
 * 更新表格信息
 * @param {Object} data - 要更新的数据对象
 * @returns {Promise} 返回一个HTTP POST请求的Promise对象，用于插入数据到表格
 */
export function updateTableInfo(data) {
    // 使用http模块发送POST请求到'/insert'接口，传入待更新的数据
    return request({
        url: '/update',
        method: "POST",
        data,
    });
}


/**
 * 新增表格信息
 * @param {Object} data - 要新增的数据对象
 * @returns {Promise} 返回一个HTTP POST请求的Promise对象，用于插入数据到表格
 */
export function insertTableInfo(data) {
    // 使用http模块发送POST请求到'/insert'接口，传入待新增的数据
    return request({
        url: '/insert',
        method: "POST",
        data,
    });
}

/**
 * 删除表格信息
 * 
 * @param {Object} data - 待删除的数据对象。该对象包含需要删除的表格信息。
 * @returns 返回一个Promise对象，它解析为HTTP请求的结果。
 */
export function deleteTableInfo(params) {
    // 使用http模块发送GET请求到'/delete'接口，传入待删除的数据
    return request({
        url: '/delete',
        method: "GET",
        params,
    });
}


/**
 * 导出项目工时数据
 * 该函数用于通过HTTP GET请求获取物品的静态数据。
 * 
 * @returns {Promise<any>} 返回一个Promise对象，它解析为从'/itemStatic'获取的数据。
 */
export function exportItemStatic(params) {
    // 发起GET请求获取物品静态数据
    return request({
        url: '/itemStatic',
        method: "GET",
        params,
        responseType: "blob"
    });
}


/**
 * 导出详细信息
 * 
 * 该函数用于从服务器获取导出的详细信息。
 * 
 * @returns {Promise} 返回一个Promise对象，成功时携带从服务器获取的导出详细信息。
 */
export function exportDetail(params) {

    // 发起GET请求获取导出详情
    return request({
        url: '/exportDetail',
        method: "GET",
        params,
        responseType: "blob"
    });
}


/**
 * 导入Excel文件
 * 本函数用于发起一个GET请求，以获取导出Excel文件的详情。
 * 
 * @returns {Promise} 返回一个Promise对象，成功时携带导出详情。
 */
export function uploadExcel(data) {
    // console.log(data)
    // 发起GET请求获取导出详情
    return request({
        url: '/importExcel',
        method: "POST",
        data,
        headers: {
            'Content-Type': 'multipart/form-data'
        }
    });
}

